Many computer software programs provide functionality that allows a user to transfer files between a client and a server computer. These software programs typically provide such functionality in a straightforward fashion, allowing the user to select those files they want to transfer, and whether or not the files are to be sent to the server computer, or sent from the server computer to the client computer. One example of a typical software program that provides such functionality is a File Transfer Protocol (FTP) program. The user can typically specify which FTP server they would like to connect to, and upon being connected, transfer files back and forth between the server and the client.
While some software programs provide file transfer functionality directly to the user, there are others that perform file transfers in the background. These types of programs typically provide some other type of functionality, and the transfer of files is only a necessary part of providing the other functionality. An example of such a program is a so-called Web browser, examples of which include Microsoft Internet Explorer and Netscape Navigator. The primary purpose of a Web browser is to allow the user to connect to other computers and view information provided in Hypertext Mark-up Language (HTML). Although the user has no explicit control over the transfer of files, the Web browser must request from the server those files it needs to display the information the user wants to see. All transfer of files takes place in the background. The user is typically oblivious to exactly what files are being transferred and in what order. Further, the user typically does not have control over this. Finally, typical web browsers load only those objects specified in the HTML document.
So called Web accelerators may define a further level of functionality, by preloading Web pages or other objects referenced on an active HTML document, and/or refreshing preferred Web pages previously visited and likely to be revisited. While some Web accelerators may provide a degree of user control, these rarely understand the content of the document and the inferred relationship between various documents within a set.
Whether files are transferred because of direct control of the user, or whether they are transferred in behalf of the user to provide additional functionality, there are several limitations to this approach. Firstly, the user typically does not have control over the order in which the files are transferred. Secondly, if the server computer must charge for the transfer of files, there is no way for the user to specify how many files are to be transferred. And thirdly, files are not automatically queued for transfer in an intelligent manner as to allow the user to make use of what he or she wants to in an organized fashion.